package com.sfx.messagequeue.mqServer.core;

import lombok.Data;

import java.io.Serializable;

/**
 * Created with IntelliJ IDEA.
 * Description: Message的核心属性
 * User: sfx
 * Date: 2023-07-30
 * Time: 18:27
 */
@Data
public class BasicProperties implements Serializable {
    //消息的唯一身份标识 -->我们要使用UUID作为Message的身份标识
    private String messageId;
    //routingKey主要针对于Topic交换机而言,用来与BindingKey相互对应
    //如果交换机类型是DIRECT交换机,routingKey就是队列的名字->唯一标识
    //如果交换机类型是FANOUT交换机,routingKey没有意义
    //如果交换机类型是TOPIC交换机,routingKey是生产者发送消息时候指定的,这时就需要与bindingKey进行对应
    //bindingKey相当于出的"题目",routingKey相当于回答的"答案",只要答对了答案,就会把消息发送给对应的队列
    private String routingKey;
    //表示Message是否支持持久化 2代表支持,1代表不支持
    private int deliverMode = 2;
    //RabbitMQ还有其他相关属性.....
}